iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

昨天我們提到,當內容更新後,如果看到的內容還是一樣,需要清除 CDN 中的快取,總覺得太搞剛了。
那麼,我們可以怎麼做呢?

在 CDN 服務中,有一種東西,叫做 Cache Key.
大家常聽過的 CDN 服務業者,都會對應的介紹。因為介紹太多,我們直接用白話文解釋。

Cache Key,就是讓 CDN 服務可以用來區分同一 URL,可以是不同的資料的東西。

以 CloudFront 做為例子,除了 URL(檔名) 外,可以作為 CacheKey 的有三類,可單獨也可以組合使用。

  • HTTP Headers
  • Query Strings
  • Cookies
    為了避免一下跳太難,我們就拿 Query String 做為例子。先知道怎麼做,之後慢慢來體會其中的原理。

動手做

測試目標: http://dwnhikcdqi4zf.cloudfront.net/static_files/images/banner.png

  • 舊圖片: https://ithelp.ithome.com.tw/upload/images/20230908/201625024ExZNWQGpn.png
  • 新圖片:https://ithelp.ithome.com.tw/upload/images/20230908/20162502YDTwqSlSjI.png
  • Step 1: 登入 CloudFront Console,我們創建一組新的 CachePolcy,取名你喜歡的名字,比方可以就叫做 'Forward-QueryStrings'
    https://ithelp.ithome.com.tw/upload/images/20230908/2016250283RnhA6DDX.png
  • Step 2: 編輯您的 CloudFront Distribution,建立一組新的 Behavior,對應的路徑為 '/static_files/*'
  • Step 3: 比照路徑為 'Default(*)' 的 Behaviors,但在設置 CachePolicy 時,不要選'CachingOptimized',改選為剛創建的 'Forward-QueryStrings'
    https://ithelp.ithome.com.tw/upload/images/20230908/20162502ACMTfU0pqv.png
  • Step 4: 再次失效(清除)快取,Object Path 可以一樣維持 '/*'。
  • Step 5: 測試網址,在瀏覽器中載入

http://dwnhikcdqi4zf.cloudfront.net/static_files/images/banner.png
發現還是看到舊的圖片
https://ithelp.ithome.com.tw/upload/images/20230908/20162502x9SPJnC5CB.png

  • Step 6: 更換網站中的圖片,並再一次輸入測試網址。 ==> 咦? 怎麼還是舊的圖?
  • Step 7: 別急,這時候可以在測試網址後帶個 Querystring,比方說 v=20230908。

http://dwnhikcdqi4zf.cloudfront.net/static_files/images/banner.png?v=20230908
這時就出現新圖片囉
https://ithelp.ithome.com.tw/upload/images/20230908/201625020lV2aPabJz.png

那麼,如果要首頁更新看到新內容的話,要怎麼做呢?
這邊我用文字說明,大家可以自己動手做看看。

  • 練習步驟1: 將 'Default(*)'這組 Behavior 的 CachePolicy 改為 'CachingDisabled'
  • 練習步驟2: 修改 index.html 的內容,讓引入圖片的部分,也多帶一個 QueyrString
    修改前的 snippet
<img src="static_files/images/banner.png" width="720" >

修改後的 snippet

<img src="static_files/images/banner.png?v=20230908" width="720" >

修改後,就看到圖片也在網頁中成功地更新。
https://ithelp.ithome.com.tw/upload/images/20230908/20162502A3ixJSdvqX.png


上一篇
Day 05 - 網頁內容更新,CDN沒跟著變,怎麼辦?
下一篇
Day 07 - 那個,我可以用自己的域名嗎
系列文
2023 年了,一起來學 CDN - 你也可以瞭解的 CloudFront 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言